<?php

/**
 * This is the model class for table "{{itmes}}".
 *
 * The followings are the available columns in table '{{itmes}}':
 * @property string $num_iid
 * @property string $title
 * @property integer $uid
 * @property string $type
 * @property integer $cid
 * @property string $seller_cids
 * @property string $props
 * @property string $pic_url
 * @property integer $num
 * @property integer $valid_thru
 * @property integer $list_time
 * @property integer $delist_time
 * @property integer $price
 * @property integer $has_discount
 * @property integer $has_invoice
 * @property integer $has_warranty
 * @property integer $has_showcase
 * @property integer $modified
 * @property string $approve_status
 * @property integer $postage_id
 * @property integer $is_virtual
 * @property integer $is_taobao
 * @property integer $is_ex
 * @property string $freight_payer
 * @property string $post_fee
 * @property string $express_fee
 * @property string $ems_fee
 * @property string $increment
 * @property string $image
 * @property string $auction_point
 * @property string $property_alias
 * @property string $input_pids
 * @property string $sku_properties
 * @property string $sku_quantities
 * @property string $sku_prices
 * @property string $sku_outer_ids
 * @property string $lang
 * @property integer $outer_id
 * @property integer $product_id
 * @property string $pic_path
 * @property string $auto_fill
 * @property string $input_str
 * @property string $is_3D
 * @property integer $after_sale_id
 * @property integer $cod_postage_id
 * @property string $is_lightning_consi
 * @property string $weight
 * @property string $is_xinpin
 * @property string $sub_stock
 * @property string $desc
 * @property string $stuff_status
 * @property string $location_state
 * @property string $location_city
 */
class Itmes extends CActiveRecord
{
	/**
	 * Returns the static model of the specified AR class.
	 * @param string $className active record class name.
	 * @return Itmes the static model class
	 */
	public $top_session;

	public static function model($className=__CLASS__)
	{
		return parent::model($className);
	}

	/**
	 * @return string the associated database table name
	 */
	public function tableName()
	{
		return 'taobao_itmes';
	}

	/**
	 * @return array validation rules for model attributes.
	 */
	public function rules()
	{
		// NOTE: you should only define rules for those attributes that
		// will receive user inputs.
		return array(
			array('num_iid,uid, cid, num, valid_thru, list_time, delist_time, price, has_discount, has_invoice, has_warranty, has_showcase, modified, postage_id, is_virtual, is_taobao, is_ex, product_id, after_sale_id, cod_postage_id,uptime', 'numerical', 'integerOnly'=>true),
			array('title, type, seller_cids, pic_url, approve_status, freight_payer, post_fee, express_fee, ems_fee, increment, image, auction_point, property_alias, input_pids, sku_properties, sku_quantities, sku_prices, sku_outer_ids, lang, pic_path, auto_fill, input_str, is_3D, is_lightning_consi, weight, is_xinpin, sub_stock,outer_id', 'length', 'max'=>255),
			array('props', 'length', 'max'=>500),
			array('stuff_status, location_state, location_city', 'length', 'max'=>50),
			array('desc', 'safe'),
			array('outer_id', 'unique','on'=>'add'),
			array('num, price, type,stuff_status,title,desc,location_city,location_state,cid', 'required','on'=>'add'),
			// The following rule is used by search().
			// Please remove those attributes that should not be searched.
			array('num_iid, title, uid, type, cid, seller_cids, props, pic_url, num, valid_thru, list_time, delist_time, price, has_discount, has_invoice, has_warranty, has_showcase, modified, approve_status, postage_id, is_virtual, is_taobao, is_ex, freight_payer, post_fee, express_fee, ems_fee, increment, image, auction_point, property_alias, input_pids, sku_properties, sku_quantities, sku_prices, sku_outer_ids, lang, outer_id, product_id, pic_path, auto_fill, input_str, is_3D, after_sale_id, cod_postage_id, is_lightning_consi, weight, is_xinpin, sub_stock, desc, stuff_status, location_state, location_city,uptime', 'safe', 'on'=>'search'),
		);
	}

	/**
	 * @return array relational rules.
	 */
	public function relations()
	{
		// NOTE: you may need to adjust the relation name and the related
		// class name for the relations automatically generated below.
		return array(
			'imginfo' => array(self::BELONGS_TO, 'ItemsImg', 'num_iid'),
		);
	}

	/**
	 * @return array customized attribute labels (name=>label)
	 */
	public function attributeLabels()
	{
		return array(
			'num_iid' => 'Num Iid',
			'title' => '商品标题',
			'uid' => 'Uid',
			'type' => '商品类型',
			'cid' => '所属的叶子类',
			'seller_cids' => '卖家自定义类目',
			'props' => '商品属性',
			'pic_url' => '商品主图片地址',
			'num' => '商品数量',
			'valid_thru' => '有效期',
			'list_time' => '上架时间',
			'delist_time' => '下架时间',
			'price' => '商品价格',
			'has_discount' => '支持会员打折',
			'has_invoice' => '是否有发票',
			'has_warranty' => '是否有保修',
			'has_showcase' => '橱窗推荐',
			'modified' => '商品修改时间',
			'approve_status' => '商品上传后的状态',
			'postage_id' => '宝贝所属的运费模板ID',
			'outer_id' => '商家外部编码',
			'is_virtual' => '虚拟商品的状态字段',
			'is_taobao' => '是否在淘宝显示',
			'is_ex' => '是否在外部网店显示',	
			'freight_payer' => '运费承担方式',
			'post_fee' => '平邮费用',
			'express_fee' => '快递费用',
			'ems_fee' => 'ems费用',
			'increment' => '加价幅度',
			'image' => '上传图片',
			'auction_point' => '商城返点比例',
			'property_alias' => '属性值别名',
			'input_pids' => '用户自行输入的类目属性ID串',
			'sku_properties' => '更新的Sku的属性串',
			'sku_quantities' => 'Sku的数量串',
			'sku_prices' => 'Sku的价格串',
			'sku_outer_ids' => 'Sku的外部id串',
			'lang' => '商品文字的字符集',
			'product_id' => '商品所属的产品ID',
			'pic_path' => '商品主图片地址',
			'auto_fill' => '代充商品类型',
			'input_str' => '用户自行输入的子属性名和属性值',
			'is_3D' => '是否是3D淘宝的商品',
			'after_sale_id' => '售后说明模板id ',
			'cod_postage_id' => '货到付款运费模板的ID',
			'is_lightning_consi' => '实物闪电发货',
			'weight' => '商品的重量',
			'is_xinpin' => '是否为新品',
			'sub_stock' => '是否支持拍下减库存',
			'desc' => '宝贝描述',
			'stuff_status' => '新旧程度',
			'location_state' => '所在地省份',
			'location_city' => '所在地城市',
			'uptime' => '创建时间',
		);
	}

	/**
	 * Retrieves a list of models based on the current search/filter conditions.
	 * @return CActiveDataProvider the data provider that can return the models based on the search/filter conditions.
	 */
	public function search()
	{
		// Warning: Please modify the following code to remove attributes that
		// should not be searched.

		$criteria=new CDbCriteria;

		$criteria->compare('num_iid',$this->num_iid,true);
		$criteria->compare('title',$this->title,true);
		$criteria->compare('uid',$this->uid);
		$criteria->compare('type',$this->type,true);
		$criteria->compare('cid',$this->cid);
		$criteria->compare('seller_cids',$this->seller_cids,true);
		$criteria->compare('props',$this->props,true);
		$criteria->compare('pic_url',$this->pic_url,true);
		$criteria->compare('num',$this->num);
		$criteria->compare('valid_thru',$this->valid_thru);
		$criteria->compare('list_time',$this->list_time);
		$criteria->compare('delist_time',$this->delist_time);
		$criteria->compare('price',$this->price);
		$criteria->compare('has_discount',$this->has_discount);
		$criteria->compare('has_invoice',$this->has_invoice);
		$criteria->compare('has_warranty',$this->has_warranty);
		$criteria->compare('has_showcase',$this->has_showcase);
		$criteria->compare('modified',$this->modified);
		$criteria->compare('approve_status',$this->approve_status,true);
		$criteria->compare('postage_id',$this->postage_id);
		$criteria->compare('is_virtual',$this->is_virtual);
		$criteria->compare('is_taobao',$this->is_taobao);
		$criteria->compare('is_ex',$this->is_ex);
		$criteria->compare('freight_payer',$this->freight_payer,true);
		$criteria->compare('post_fee',$this->post_fee,true);
		$criteria->compare('express_fee',$this->express_fee,true);
		$criteria->compare('ems_fee',$this->ems_fee,true);
		$criteria->compare('increment',$this->increment,true);
		$criteria->compare('image',$this->image,true);
		$criteria->compare('auction_point',$this->auction_point,true);
		$criteria->compare('property_alias',$this->property_alias,true);
		$criteria->compare('input_pids',$this->input_pids,true);
		$criteria->compare('sku_properties',$this->sku_properties,true);
		$criteria->compare('sku_quantities',$this->sku_quantities,true);
		$criteria->compare('sku_prices',$this->sku_prices,true);
		$criteria->compare('sku_outer_ids',$this->sku_outer_ids,true);
		$criteria->compare('lang',$this->lang,true);
		$criteria->compare('outer_id',$this->outer_id);
		$criteria->compare('product_id',$this->product_id);
		$criteria->compare('pic_path',$this->pic_path,true);
		$criteria->compare('auto_fill',$this->auto_fill,true);
		$criteria->compare('input_str',$this->input_str,true);
		$criteria->compare('is_3D',$this->is_3D,true);
		$criteria->compare('after_sale_id',$this->after_sale_id);
		$criteria->compare('cod_postage_id',$this->cod_postage_id);
		$criteria->compare('is_lightning_consi',$this->is_lightning_consi,true);
		$criteria->compare('weight',$this->weight,true);
		$criteria->compare('is_xinpin',$this->is_xinpin,true);
		$criteria->compare('sub_stock',$this->sub_stock,true);
		$criteria->compare('desc',$this->desc,true);
		$criteria->compare('stuff_status',$this->stuff_status,true);
		$criteria->compare('location_state',$this->location_state,true);
		$criteria->compare('location_city',$this->location_city,true);
		$criteria->compare('uptime',$this->uptime,true);

		return new CActiveDataProvider($this, array(
			'criteria'=>$criteria,
		));
	}

	protected function beforeSave() {
		parent::beforeSave();
			if($this->isNewRecord) {
				/*
				$myid = $this->addapi();
				if($myid && $myid->item->num_iid) {
					$this->num_iid = $myid->item->num_iid;				
					$this->uptime = time();
					$this->modified = time();
					return true;
				}
				else 
					return false;
				*/
			}
		return true;
	}

	public function addapi(){
	
	$req = new ItemAddRequest;
		
		//必须 	30 		商品数量，取值范围:0-999999的整数。且需要等于Sku所有数量的和 
		$req->setNum($this->num); 
		
		//必须 	200.07 		商品价格。取值范围:0-100000000;精确到2位小数;单位:元。如:200.07，表示:200元7分。需要在正确的价格区间内。 
		$req->setPrice($this->price/100); 
		
		//String 	必须 	fixed 		发布类型。可选值:fixed(一口价),auction(拍卖)。B商家不能发布拍卖商品，而且拍卖商品是没有SKU的
		$req->setType($this->type); 
		
		//String 	必须 	new 		新旧程度。可选值：new(新)，second(二手)，unused(闲置)。B商家不能发布二手商品。如果是二手商品，特定类目下属性里面必填新旧成色属性 
		$req->setStuffStatus($this->stuff_status);
		
		/*String 	必须 	Nokia N97全新行货 		宝贝标题。不能超过60字符，受违禁词控制 
		 * 
		 */
		$req->setTitle($this->utfSubstr($this->title,strlen($this->title)-58,60).'_');
		
		/*String 	必须 	这是一个好商品 		宝贝描述。字数要大于5个字符，小于25000个字符，受违禁词控制 
		 * 
		 */
		$req->setDesc($this->desc);
		
		/*String 	必须 	浙江 		所在地省份。如浙江，具体可以下载http://dl.open.taobao.com/sdk/商品城市列表.rar 取到 
		 * 
		 */
		$req->setLocationState($this->location_state);
		
		/*String 	必须 	杭州 		所在地城市。如杭州 。可以通过http://dl.open.taobao.com/sdk/商品城市列表.rar查询 
		 * 
		 */
		$req->setLocationCity($this->location_city);
		
		/*String 	可选 	onsale 	onsale 	商品上传后的状态。可选值:onsale(出售中),instock(仓库中);默认值:onsale 
		 * 
		 */
		$req->setApproveStatus($this->approve_status);
		
		/*Number 	必须 	1512 		叶子类目id 
		 * 
		 */
		$req->setCid($this->cid);
		
		/*String 	可选 	20000:33564;21514:38489 		商品属性列表。格式:pid:vid;pid:vid。属性的pid调用taobao.itemprops.get取得，属性值的vid用taobao.itempropvalues.get取得vid。 如果该类目下面没有属性，可以不用填写。如果有属性，必选属性必填，其他非必选属性可以选择不填写.属性不能超过35对。所有属性加起来包括分割符不能超过549字节，单个属性没有限制。 如果有属性是可输入的话，则用字段input_str填入属性的值 
		 * 
		 */
		if($this->props) $req->setProps($this->props);
		
		/*String 	可选 	buyer 	seller 	运费承担方式。可选值:seller（卖家承担）,buyer(买家承担);默认值:seller。卖家承担不用设置邮费和postage_id.买家承担的时候，必填邮费和postage_id 如果用户设置了运费模板会优先使用运费模板，否则要同步设置邮费（post_fee,express_fee,ems_fee） 
		 * 
		 */
		if($this->freight_payer) $req->setFreightPayer($this->freight_payer);	
		
		/*Number 	可选 	7 	14 	有效期。可选值:7,14;单位:天;默认值:14 
		 * 
		 */
		if($this->valid_thru) $req->setValidThru($this->valid_thru); 
		
		/*Boolean 	可选 	true 	false 	是否有发票。可选值:true,false (商城卖家此字段必须为true);默认值:false(无发票) 
		 * 
		 */
		if($this->has_invoice) $req->setHasInvoice($this->has_invoice);
		
		/*
		 * Boolean 	可选 	true 	false 	是否有保修。可选值:true,false;默认值:false(不保修) 
		 */
		if($this->has_warranty) $req->setHasWarranty($this->has_warranty);
		
		/*Boolean 	可选 	true 	false 	橱窗推荐。可选值:true,false;默认值:false(不推荐) 
		 * 
		 */
		if($this->has_showcase) $req->setHasShowcase($this->has_showcase);
		
		/*String [] 	可选 	1101,1102,1103 		商品所属的店铺类目列表。按逗号分隔。结构:",cid1,cid2,...,"，如果店铺类目存在二级类目，必须传入子类目cids。 
		 * 
		 */
		if($this->seller_cids) $req->setSellerCids($this->seller_cids);
		
		/*
		 * Boolean 	可选 	true 	false 	支持会员打折。可选值:true,false;默认值:false(不打折) 
		 */		
		if($this->has_discount) $req->setHasDiscount($this->has_discount);
		
		/*
		 * Price 	可选 	5.07 		平邮费用。取值范围:0.01-999.00;精确到2位小数;单位:元。如:5.07，表示:5元7分. 注:post_fee,express_fee,ems_fee需要一起填写 
		 */
		if($this->post_fee) $req->setPostFee($this->post_fee);
		
		/*
		 * Price 	可选 	15.07 		快递费用。取值范围:0.01-999.00;精确到2位小数;单位:元。如:15.07，表示:15元7分 
		 */
		if($this->express_fee) $req->setExpressFee($this->express_fee);
		
		/*
		 * Price 	可选 	25.07 		ems费用。取值范围:0.01-999.00;精确到2位小数;单位:元。如:25.07，表示:25元7分 
		 */
		if($this->ems_fee) $req->setEmsFee($this->ems_fee);
		
		/*
		 * Date 	可选 	2000-01-01 00:00:00 		定时上架时间。(时间格式：yyyy-MM-dd HH:mm:ss) 
		 */
		if($this->list_time) $req->setListTime($this->list_time);
		
		/*
		 * Price 	可选 	2.50 		加价幅度。如果为0，代表系统代理幅度 
		 */
		if($this->delist_time) $req->setIncrement($this->delist_time);
		
		
		/*
		 * 	byte[] 	可选 	我是被上传的文件内容 		商品主图片。类型:JPG,GIF;最大长度:500K 
		 */
		//附件上传的机制参见PHP CURL文档，在文件路径前加@符号即可
		//$req->setImage(@fileLocation);
		
		/*
		 * Number 	可选 	775752 		宝贝所属的运费模板ID。取值范围：整数且必须是该卖家的运费模板的ID（可通过taobao.delivery.template.get获得当前会话用户的所有邮费模板） 
		 */
		//$req->setPostageId($this->postage_id);
		
		
		/*
		 * Number 	可选 	5 		商品的积分返点比例。如:5,表示:返点比例0.5%. 注意：返点比例必须是>0的整数，而且最大是90,即为9%.B商家在发布非虚拟商品时，返点必须是 5的倍数，即0.5%的倍数。其它是1的倍数，即0.1%的倍数。无名良品商家发布商品时，复用该字段记录积分宝返点比例，返点必须是对应类目的返点步长的整数倍，默认是5，即0.5%。注意此时该字段值依旧必须是>0的整数，最高值不超过500，即50% 
		 */
		//$req->setAuctionPoint($this->auction_point);
		
		
		/*
		 * String 	可选 	pid:vid:别名;pid1:vid1:别名1 		属性值别名。如pid:vid:别名;pid1:vid1:别名1 ，其中：pid是属性id vid是属性值id。总长度不超过511字节 
		 */
		//$req->setPropertyAlias("pid:vid:别名;pid1:vid1:别名1");
		
		
		/*
		 * String 	可选 	pid1,pid2,pid3 		用户自行输入的类目属性ID串。结构："pid1,pid2,pid3"，如："20000"（表示品牌） 注：通常一个类目下用户可输入的关键属性不超过1个。 
		 */
		if(!empty($this->input_pids)) $req->setInputPids($this->input_pids);
		
		/*
		 * String 	可选 	pid:vid;pid:vid 		更新的Sku的属性串，调用taobao.itemprops.get获取类目属性，如果属性是销售属性，再用taobao.itempropvalues.get取得vid。格式:pid:vid;pid:vid,多个sku之间用逗号分隔。该字段内的销售属性（自定义的除外）也需要在props字段填写。sku的销售属性需要一同选取，如:颜色，尺寸。如果新增商品包含了sku，则此字段一定要传入。这个字段的长度要控制在512个字节以内。如果有自定义销售属性，则格式为pid:vid;pid2:vid2;$pText:vText , 其中$pText:vText为自定义属性。限制：其中$pText的’$’前缀不能少，且pText和vText文本中不可以存在冒号:和分号;以及逗号， 
		 */
		//$req->setSkuProperties($this->sku_properties);
		
		/*
		 * String 	可选 	2,3,4 		Sku的数量串，结构如：num1,num2,num3 如：2,3 
		 */
		//$req->setSkuQuantities($this->sku_quantities);
		
		/*
		 * String 	可选 	200.07 		Sku的价格串，结构如：10.00,5.00,… 精确到2位小数;单位:元。如:200.07，表示:200元7分 
		 */
		//$req->setSkuPrices($this->);
		
		/*
		 * String 	可选 	1234,1342 		Sku的外部id串，结构如：1234,1342,… sku_properties, sku_quantities, sku_prices, sku_outer_ids在输入数据时要一一对应，如果没有sku_outer_ids也要写上这个参数，入参是","(这个是两个sku的示列，逗号数应该是sku个数减1)；该参数最大长度是512个字节 
		 */
		//$req->setSkuOuterIds($this->sku_prices);
		
		/*
		 * String 	可选 	zh_CN 	zh_CN 	商品文字的字符集。繁体传入"zh_HK"，简体传入"zh_CN"，不传默认为简体 
		 */
		//$req->setLang($this->);
		
		/*
		 * String 	可选 	12345 		商品外部编码，该字段的最大长度是512个字节 
		 */
		if($this->outer_id) $req->setOuterId($this->outer_id);
		
		/*
		 * 	Number 	可选 	123456789 		商品所属的产品ID(B商家发布商品需要用) 
		 */
		//$req->setProductId($this->product_id);
		
		/*
		 * String 	可选 	i7/T1rfxpXcVhXXXH9QcZ_033150.jpg 		商品主图需要关联的图片空间的相对url。这个url所对应的图片必须要属于当前用户。pic_path和image只需要传入一个,如果两个都传，默认选择pic_path 
		 */
		if($this->pic_path) $req->setPicPath($this->pic_path);
		
		/*
		 * String 	可选 	time_card 		代充商品类型。在代充商品的类目下，不传表示不标记商品类型（交易搜索中就不能通过标记搜到相关的交易了）。可选类型： no_mark(不做类型标记) time_card(点卡软件代充) fee_card(话费软件代充) 
		 */
		//$req->setAutoFill($this->auto_fill);
		
		/*
		 * String 	可选 	耐克;耐克系列;科比系列;科比系列;2K5,Nike乔丹鞋;乔丹系列;乔丹鞋系列;乔丹鞋系列; 		用户自行输入的子属性名和属性值，结构:"父属性值;一级子属性名;一级子属性值;二级子属性名;自定义输入值,....",如：“耐克;耐克系列;科比系列;科比系列;2K5,Nike乔丹鞋;乔丹系列;乔丹鞋系列;乔丹鞋系列;json5”，多个自定义属性用','分割，input_str需要与input_pids一一对应，注：通常一个类目下用户可输入的关键属性不超过1个。所有属性别名加起来不能超过3999字节 
		 */
		if(!empty($this->input_str)) $req->setInputStr($this->input_str);
		
		/*
		 * is_taobao 	Boolean 	可选 	true 		是否在淘宝上显示（如果传FALSE，则在淘宝主站无法显示该商品） 
		 */
		if($this->is_taobao) $req->setIsTaobao($this->is_taobao);
		
		/*
		 * 	Boolean 	可选 	true 		是否在外店显示 
		 */
		if($this->is_ex) $req->setIsEx($this->is_ex);
		
		/*
		 * Boolean 	可选 	true 		是否是3D 
		 */
		//$req->setIs3D($this->is_3D);
		
		/*
		 * Boolean 	可选 	true 		是否承诺退换货服务!虚拟商品无须设置此项! 
		 */
		//$req->setSellPromise($this->);
		
		/*
		 * 	Number 	可选 	47758 		售后说明模板id 
		 */
		//$req->setAfterSaleId($this->after_sale_id);
		
		/*
		 * Number 	可选 	53899 		此为货到付款运费模板的ID，对应的JAVA类型是long,如果COD卖家应用了货到付款运费模板，此值要进行设置。 
		 */
		//$req->setCodPostageId($this->);
		
		/*
		 * Boolean 	可选 	true 		实物闪电发货 
		 */
		//$req->setIsLightningConsignment($this->is_lightning_consi);
		
		/*
		 * Number 	可选 	100 		商品的重量(商超卖家专用字段) 
		 */
		//$req->setWeight($this->weight);
		
		/*
		 * Boolean 	可选 	false 	false 	商品是否为新品。只有在当前类目开通新品,并且当前用户拥有该类目下发布新品权限时才能设置is_xinpin为true，否则设置true后会返回错误码:isv.invalid-permission:add-xinpin。同时只有一口价全新的宝贝才能设置为新品，否则会返回错误码：isv.invalid-parameter:xinpin。不设置该参数值或设置为false效果一致。 
		 */
		//if($this->is_xinpin) $req->setIsXinpin($this->is_xinpin);
		
		/*
		 * Number 	可选 	1 	0 	商品是否支持拍下减库存:1支持;2取消支持(付款减库存);0(默认)不更改集市卖家默认拍下减库存; 商城卖家默认付款减库存 
		 */
		//if($this->sub_stock) $req->setSubStock($this->sub_stock);		
		
		$resp = Yii::app()->top->execute($req, $this->top_session);
		if($resp->code) {			
			Yii::app()->user->setFlash('result',$resp->msg);
			print_r($resp);
			return false;
		}else{
			return $resp;
		}
	}
function utfSubstr($str, $position, $length,$type=0){
	  $startPos = strlen($str);
	  $startByte = 0;
	  $endPos = strlen($str);
	  $count = 0;
	  for($i=0; $i<strlen($str); $i++){
	   if($count>=$position && $startPos>$i){
	    $startPos = $i;
	    $startByte = $count;
	   }
	   if(($count-$startByte) >= $length) {
	    $endPos = $i;
	    break;
	   }    
	   $value = ord($str[$i]);
	   if($value > 127){
	    $count++;
	    if($value>=192 && $value<=223) $i++;
	    elseif($value>=224 && $value<=239) $i = $i + 2;
	    elseif($value>=240 && $value<=247) $i = $i + 3;
	    else return self::raiseError("\"$str\" Not a UTF-8 compatible string", 0, __CLASS__, __METHOD__, __FILE__, __LINE__);
	   }
	   $count++;
	
	  }
	  if($type==1 && ($endPos-6)>$length){
	   return substr($str, $startPos, $endPos-$startPos)."..."; 
	       }else{
	   return substr($str, $startPos, $endPos-$startPos);     
	    }
	  
	 }
	//获得商家的店铺连接
	public function getItemlink(){
		$exps = explode("_",$this->outer_id);
		if(count($exps)<2) return false;
		switch($exps[0]) {
			case '02':
				$links = "http://auction1.paipai.com/".$exps[1];
				break;
			default:
				$links = "http://item.taobao.com/item.htm?id=".$exps[1];
		}
		return $links;
	}
}